#include <iostream>
#include <vector>
using namespace std;

enum s_Har {Byi='b',Rui='r',dUi='d'};

template<int i_1,int i_2,int i_3>
class z_Yryer {
	protected:
		int gong, fan, n_dong;
	public:
		z_Yryer():gong(i_1),fan(i_2),n_dong(i_3){}
		
		int get_g(){
			return gong;
		}
		int get_f(){
			return fan;
		}
		int get_nd(){
			return n_dong;
		}
}; 

template<typename T> 
class zHero_dby {
	protected:
		//z_Yryer<T>
		T s_zYeyr;
		s_Har sh;
	public:
	    zHero_dby(T t,s_Har s):s_zYeyr(t),sh(s){}
		
		vector<int> get_HeroNliyr(){
			int i[3]={s_zYeyr.get_g(),s_zYeyr.get_f(),s_zYeyr.get_nd()};
			return vector<int>(i,i+3);
		}
		s_Har get_sHar(){
			return sh;
		} 
};

int main(){
	z_Yryer<3,2,1> z_Yr;
	zHero_dby<z_Yryer<3,2,1> > a_hr(z_Yr,Rui);
	cout << (char)a_hr.get_sHar() << " ";
    
    vector<int> nli = a_hr.get_HeroNliyr();
	for (vector<int>::iterator it = nli.begin(); it != nli.end(); ++it) {
	    cout << *it << " ";
	}
	cout << endl;
	return 0;
}


